{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import sys\n",
    "sys.path.insert(0, '../python')\n",
    "sys.path.insert(0, '../')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "import torchvision.models\n",
    "import hiddenlayer as hl\n",
    "from model import bodypose_model, handpose_model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
       " -->\n",
       "<!-- Title: %3 Pages: 1 -->\n",
       "<svg width=\"518pt\" height=\"1892pt\"\n",
       " viewBox=\"0.00 0.00 518.00 1892.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(72 1856)\">\n",
       "<title>%3</title>\n",
       "<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-72,36 -72,-1856 446,-1856 446,36 -72,36\"/>\n",
       "<!-- bodypose_model/Sequential[model0]/MaxPool2d[pool1_stage1]/outputs/189 -->\n",
       "<g id=\"node1\" class=\"node\">\n",
       "<title>bodypose_model/Sequential[model0]/MaxPool2d[pool1_stage1]/outputs/189</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"293.5,-1741 226.5,-1741 226.5,-1705 293.5,-1705 293.5,-1741\"/>\n",
       "<text text-anchor=\"start\" x=\"234.665\" y=\"-1720\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">MaxPool2x2</text>\n",
       "</g>\n",
       "<!-- 13064966811616914696 -->\n",
       "<g id=\"node21\" class=\"node\">\n",
       "<title>13064966811616914696</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"301,-1668 219,-1668 219,-1626 301,-1626 301,-1668\"/>\n",
       "<text text-anchor=\"start\" x=\"226.9019\" y=\"-1652\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv3x3 &gt; Relu</text>\n",
       "<text text-anchor=\"start\" x=\"287\" y=\"-1632\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">x2</text>\n",
       "</g>\n",
       "<!-- bodypose_model/Sequential[model0]/MaxPool2d[pool1_stage1]/outputs/189&#45;&gt;13064966811616914696 -->\n",
       "<g id=\"edge12\" class=\"edge\">\n",
       "<title>bodypose_model/Sequential[model0]/MaxPool2d[pool1_stage1]/outputs/189&#45;&gt;13064966811616914696</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M260,-1704.9891C260,-1697.0386 260,-1687.4561 260,-1678.3913\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"263.5001,-1678.1166 260,-1668.1166 256.5001,-1678.1166 263.5001,-1678.1166\"/>\n",
       "</g>\n",
       "<!-- bodypose_model/Sequential[model0]/MaxPool2d[pool2_stage1]/outputs/194 -->\n",
       "<g id=\"node2\" class=\"node\">\n",
       "<title>bodypose_model/Sequential[model0]/MaxPool2d[pool2_stage1]/outputs/194</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"293.5,-1589 226.5,-1589 226.5,-1553 293.5,-1553 293.5,-1589\"/>\n",
       "<text text-anchor=\"start\" x=\"234.665\" y=\"-1568\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">MaxPool2x2</text>\n",
       "</g>\n",
       "<!-- 15125386261721430011 -->\n",
       "<g id=\"node22\" class=\"node\">\n",
       "<title>15125386261721430011</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"301,-1516 219,-1516 219,-1474 301,-1474 301,-1516\"/>\n",
       "<text text-anchor=\"start\" x=\"226.9019\" y=\"-1500\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv3x3 &gt; Relu</text>\n",
       "<text text-anchor=\"start\" x=\"287\" y=\"-1480\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">x4</text>\n",
       "</g>\n",
       "<!-- bodypose_model/Sequential[model0]/MaxPool2d[pool2_stage1]/outputs/194&#45;&gt;15125386261721430011 -->\n",
       "<g id=\"edge14\" class=\"edge\">\n",
       "<title>bodypose_model/Sequential[model0]/MaxPool2d[pool2_stage1]/outputs/194&#45;&gt;15125386261721430011</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M260,-1552.9891C260,-1545.0386 260,-1535.4561 260,-1526.3913\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"263.5001,-1526.1166 260,-1516.1166 256.5001,-1526.1166 263.5001,-1526.1166\"/>\n",
       "</g>\n",
       "<!-- bodypose_model/Sequential[model0]/MaxPool2d[pool3_stage1]/outputs/203 -->\n",
       "<g id=\"node3\" class=\"node\">\n",
       "<title>bodypose_model/Sequential[model0]/MaxPool2d[pool3_stage1]/outputs/203</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"293.5,-1437 226.5,-1437 226.5,-1401 293.5,-1401 293.5,-1437\"/>\n",
       "<text text-anchor=\"start\" x=\"234.665\" y=\"-1416\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">MaxPool2x2</text>\n",
       "</g>\n",
       "<!-- 3416934003633053932 -->\n",
       "<g id=\"node23\" class=\"node\">\n",
       "<title>3416934003633053932</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"301,-1364 219,-1364 219,-1322 301,-1322 301,-1364\"/>\n",
       "<text text-anchor=\"start\" x=\"226.9019\" y=\"-1348\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv3x3 &gt; Relu</text>\n",
       "<text text-anchor=\"start\" x=\"287\" y=\"-1328\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">x4</text>\n",
       "</g>\n",
       "<!-- bodypose_model/Sequential[model0]/MaxPool2d[pool3_stage1]/outputs/203&#45;&gt;3416934003633053932 -->\n",
       "<g id=\"edge16\" class=\"edge\">\n",
       "<title>bodypose_model/Sequential[model0]/MaxPool2d[pool3_stage1]/outputs/203&#45;&gt;3416934003633053932</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M260,-1400.9891C260,-1393.0386 260,-1383.4561 260,-1374.3913\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"263.5001,-1374.1166 260,-1364.1166 256.5001,-1374.1166 263.5001,-1374.1166\"/>\n",
       "</g>\n",
       "<!-- bodypose_model/Sequential[model1_1]/Conv2d[conv5_5_CPM_L1]/outputs/220 -->\n",
       "<g id=\"node4\" class=\"node\">\n",
       "<title>bodypose_model/Sequential[model1_1]/Conv2d[conv5_5_CPM_L1]/outputs/220</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"125,-1206 71,-1206 71,-1170 125,-1170 125,-1206\"/>\n",
       "<text text-anchor=\"start\" x=\"79.665\" y=\"-1185\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv1x1</text>\n",
       "</g>\n",
       "<!-- bodypose_model/outputs/230 -->\n",
       "<g id=\"node6\" class=\"node\">\n",
       "<title>bodypose_model/outputs/230</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"218,-1124 164,-1124 164,-1088 218,-1088 218,-1124\"/>\n",
       "<text text-anchor=\"start\" x=\"176.8374\" y=\"-1103\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Concat</text>\n",
       "</g>\n",
       "<!-- bodypose_model/Sequential[model1_1]/Conv2d[conv5_5_CPM_L1]/outputs/220&#45;&gt;bodypose_model/outputs/230 -->\n",
       "<g id=\"edge1\" class=\"edge\">\n",
       "<title>bodypose_model/Sequential[model1_1]/Conv2d[conv5_5_CPM_L1]/outputs/220&#45;&gt;bodypose_model/outputs/230</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M111.3831,-1169.923C118.4634,-1160.9876 127.619,-1150.3578 137,-1142 142.6103,-1137.0016 148.962,-1132.1644 155.2882,-1127.7437\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"157.4847,-1130.4843 163.827,-1121.9974 153.5765,-1124.6768 157.4847,-1130.4843\"/>\n",
       "<text text-anchor=\"middle\" x=\"162\" y=\"-1144\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">1x38x46x46</text>\n",
       "</g>\n",
       "<!-- bodypose_model/Sequential[model1_2]/Conv2d[conv5_5_CPM_L2]/outputs/229 -->\n",
       "<g id=\"node5\" class=\"node\">\n",
       "<title>bodypose_model/Sequential[model1_2]/Conv2d[conv5_5_CPM_L2]/outputs/229</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"218,-1206 164,-1206 164,-1170 218,-1170 218,-1206\"/>\n",
       "<text text-anchor=\"start\" x=\"172.665\" y=\"-1185\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv1x1</text>\n",
       "</g>\n",
       "<!-- bodypose_model/Sequential[model1_2]/Conv2d[conv5_5_CPM_L2]/outputs/229&#45;&gt;bodypose_model/outputs/230 -->\n",
       "<g id=\"edge2\" class=\"edge\">\n",
       "<title>bodypose_model/Sequential[model1_2]/Conv2d[conv5_5_CPM_L2]/outputs/229&#45;&gt;bodypose_model/outputs/230</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M191,-1169.8015C191,-1159.3976 191,-1146.1215 191,-1134.3768\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"194.5001,-1134.1476 191,-1124.1476 187.5001,-1134.1476 194.5001,-1134.1476\"/>\n",
       "<text text-anchor=\"middle\" x=\"216\" y=\"-1144\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">1x19x46x46</text>\n",
       "</g>\n",
       "<!-- 14230139936353591237 -->\n",
       "<g id=\"node26\" class=\"node\">\n",
       "<title>14230139936353591237</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"170,-1051 88,-1051 88,-1009 170,-1009 170,-1051\"/>\n",
       "<text text-anchor=\"start\" x=\"95.9019\" y=\"-1035\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv7x7 &gt; Relu</text>\n",
       "<text text-anchor=\"start\" x=\"156\" y=\"-1015\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">x6</text>\n",
       "</g>\n",
       "<!-- bodypose_model/outputs/230&#45;&gt;14230139936353591237 -->\n",
       "<g id=\"edge26\" class=\"edge\">\n",
       "<title>bodypose_model/outputs/230&#45;&gt;14230139936353591237</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M176.3069,-1087.9891C169.257,-1079.3472 160.6341,-1068.7773 152.6903,-1059.0397\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"155.26,-1056.6528 146.2267,-1051.1166 149.836,-1061.0777 155.26,-1056.6528\"/>\n",
       "</g>\n",
       "<!-- 5665934897048359346 -->\n",
       "<g id=\"node27\" class=\"node\">\n",
       "<title>5665934897048359346</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"270,-1051 188,-1051 188,-1009 270,-1009 270,-1051\"/>\n",
       "<text text-anchor=\"start\" x=\"195.9019\" y=\"-1035\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv7x7 &gt; Relu</text>\n",
       "<text text-anchor=\"start\" x=\"256\" y=\"-1015\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">x6</text>\n",
       "</g>\n",
       "<!-- bodypose_model/outputs/230&#45;&gt;5665934897048359346 -->\n",
       "<g id=\"edge28\" class=\"edge\">\n",
       "<title>bodypose_model/outputs/230&#45;&gt;5665934897048359346</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M200.0055,-1087.9891C204.1535,-1079.6929 209.1901,-1069.6198 213.894,-1060.2121\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"217.1,-1061.6262 218.4417,-1051.1166 210.839,-1058.4956 217.1,-1061.6262\"/>\n",
       "</g>\n",
       "<!-- bodypose_model/Sequential[model2_1]/Conv2d[Mconv7_stage2_L1]/outputs/243 -->\n",
       "<g id=\"node7\" class=\"node\">\n",
       "<title>bodypose_model/Sequential[model2_1]/Conv2d[Mconv7_stage2_L1]/outputs/243</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"172,-972 118,-972 118,-936 172,-936 172,-972\"/>\n",
       "<text text-anchor=\"start\" x=\"126.665\" y=\"-951\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv1x1</text>\n",
       "</g>\n",
       "<!-- bodypose_model/outputs/257 -->\n",
       "<g id=\"node9\" class=\"node\">\n",
       "<title>bodypose_model/outputs/257</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"256,-890 202,-890 202,-854 256,-854 256,-890\"/>\n",
       "<text text-anchor=\"start\" x=\"214.8374\" y=\"-869\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Concat</text>\n",
       "</g>\n",
       "<!-- bodypose_model/Sequential[model2_1]/Conv2d[Mconv7_stage2_L1]/outputs/243&#45;&gt;bodypose_model/outputs/257 -->\n",
       "<g id=\"edge3\" class=\"edge\">\n",
       "<title>bodypose_model/Sequential[model2_1]/Conv2d[Mconv7_stage2_L1]/outputs/243&#45;&gt;bodypose_model/outputs/257</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M154.5893,-935.7309C159.8559,-926.7466 166.9508,-916.131 175,-908 180.3952,-902.55 186.7387,-897.4533 193.1448,-892.9072\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"195.4874,-895.5499 201.836,-887.0678 191.5835,-889.7395 195.4874,-895.5499\"/>\n",
       "<text text-anchor=\"middle\" x=\"200\" y=\"-910\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">1x38x46x46</text>\n",
       "</g>\n",
       "<!-- bodypose_model/Sequential[model2_2]/Conv2d[Mconv7_stage2_L2]/outputs/256 -->\n",
       "<g id=\"node8\" class=\"node\">\n",
       "<title>bodypose_model/Sequential[model2_2]/Conv2d[Mconv7_stage2_L2]/outputs/256</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"256,-972 202,-972 202,-936 256,-936 256,-972\"/>\n",
       "<text text-anchor=\"start\" x=\"210.665\" y=\"-951\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv1x1</text>\n",
       "</g>\n",
       "<!-- bodypose_model/Sequential[model2_2]/Conv2d[Mconv7_stage2_L2]/outputs/256&#45;&gt;bodypose_model/outputs/257 -->\n",
       "<g id=\"edge4\" class=\"edge\">\n",
       "<title>bodypose_model/Sequential[model2_2]/Conv2d[Mconv7_stage2_L2]/outputs/256&#45;&gt;bodypose_model/outputs/257</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M229,-935.8015C229,-925.3976 229,-912.1215 229,-900.3768\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"232.5001,-900.1476 229,-890.1476 225.5001,-900.1476 232.5001,-900.1476\"/>\n",
       "<text text-anchor=\"middle\" x=\"254\" y=\"-910\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">1x19x46x46</text>\n",
       "</g>\n",
       "<!-- 4916951163406574479 -->\n",
       "<g id=\"node28\" class=\"node\">\n",
       "<title>4916951163406574479</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"308,-817 226,-817 226,-775 308,-775 308,-817\"/>\n",
       "<text text-anchor=\"start\" x=\"233.9019\" y=\"-801\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv7x7 &gt; Relu</text>\n",
       "<text text-anchor=\"start\" x=\"294\" y=\"-781\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">x6</text>\n",
       "</g>\n",
       "<!-- bodypose_model/outputs/257&#45;&gt;4916951163406574479 -->\n",
       "<g id=\"edge30\" class=\"edge\">\n",
       "<title>bodypose_model/outputs/257&#45;&gt;4916951163406574479</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M238.0055,-853.9891C242.1535,-845.6929 247.1901,-835.6198 251.894,-826.2121\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"255.1,-827.6262 256.4417,-817.1166 248.839,-824.4956 255.1,-827.6262\"/>\n",
       "</g>\n",
       "<!-- 10021701631470090739 -->\n",
       "<g id=\"node29\" class=\"node\">\n",
       "<title>10021701631470090739</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"208,-817 126,-817 126,-775 208,-775 208,-817\"/>\n",
       "<text text-anchor=\"start\" x=\"133.9019\" y=\"-801\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv7x7 &gt; Relu</text>\n",
       "<text text-anchor=\"start\" x=\"194\" y=\"-781\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">x6</text>\n",
       "</g>\n",
       "<!-- bodypose_model/outputs/257&#45;&gt;10021701631470090739 -->\n",
       "<g id=\"edge32\" class=\"edge\">\n",
       "<title>bodypose_model/outputs/257&#45;&gt;10021701631470090739</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M214.3069,-853.9891C207.257,-845.3472 198.6341,-834.7773 190.6903,-825.0397\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"193.26,-822.6528 184.2267,-817.1166 187.836,-827.0777 193.26,-822.6528\"/>\n",
       "</g>\n",
       "<!-- bodypose_model/Sequential[model3_1]/Conv2d[Mconv7_stage3_L1]/outputs/270 -->\n",
       "<g id=\"node10\" class=\"node\">\n",
       "<title>bodypose_model/Sequential[model3_1]/Conv2d[Mconv7_stage3_L1]/outputs/270</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"294,-738 240,-738 240,-702 294,-702 294,-738\"/>\n",
       "<text text-anchor=\"start\" x=\"248.665\" y=\"-717\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv1x1</text>\n",
       "</g>\n",
       "<!-- bodypose_model/outputs/284 -->\n",
       "<g id=\"node12\" class=\"node\">\n",
       "<title>bodypose_model/outputs/284</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"294,-656 240,-656 240,-620 294,-620 294,-656\"/>\n",
       "<text text-anchor=\"start\" x=\"252.8374\" y=\"-635\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Concat</text>\n",
       "</g>\n",
       "<!-- bodypose_model/Sequential[model3_1]/Conv2d[Mconv7_stage3_L1]/outputs/270&#45;&gt;bodypose_model/outputs/284 -->\n",
       "<g id=\"edge5\" class=\"edge\">\n",
       "<title>bodypose_model/Sequential[model3_1]/Conv2d[Mconv7_stage3_L1]/outputs/270&#45;&gt;bodypose_model/outputs/284</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M267,-701.8015C267,-691.3976 267,-678.1215 267,-666.3768\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"270.5001,-666.1476 267,-656.1476 263.5001,-666.1476 270.5001,-666.1476\"/>\n",
       "<text text-anchor=\"middle\" x=\"292\" y=\"-676\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">1x38x46x46</text>\n",
       "</g>\n",
       "<!-- bodypose_model/Sequential[model3_2]/Conv2d[Mconv7_stage3_L2]/outputs/283 -->\n",
       "<g id=\"node11\" class=\"node\">\n",
       "<title>bodypose_model/Sequential[model3_2]/Conv2d[Mconv7_stage3_L2]/outputs/283</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"204,-738 150,-738 150,-702 204,-702 204,-738\"/>\n",
       "<text text-anchor=\"start\" x=\"158.665\" y=\"-717\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv1x1</text>\n",
       "</g>\n",
       "<!-- bodypose_model/Sequential[model3_2]/Conv2d[Mconv7_stage3_L2]/outputs/283&#45;&gt;bodypose_model/outputs/284 -->\n",
       "<g id=\"edge6\" class=\"edge\">\n",
       "<title>bodypose_model/Sequential[model3_2]/Conv2d[Mconv7_stage3_L2]/outputs/283&#45;&gt;bodypose_model/outputs/284</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M189.128,-701.85C195.6062,-692.896 204.0742,-682.2716 213,-674 218.5681,-668.84 224.9457,-663.9025 231.3209,-659.4278\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"233.5908,-662.1193 239.9369,-653.6353 229.6852,-656.3101 233.5908,-662.1193\"/>\n",
       "<text text-anchor=\"middle\" x=\"238\" y=\"-676\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">1x19x46x46</text>\n",
       "</g>\n",
       "<!-- 10019260897339890291 -->\n",
       "<g id=\"node30\" class=\"node\">\n",
       "<title>10019260897339890291</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"217,-583 135,-583 135,-541 217,-541 217,-583\"/>\n",
       "<text text-anchor=\"start\" x=\"142.9019\" y=\"-567\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv7x7 &gt; Relu</text>\n",
       "<text text-anchor=\"start\" x=\"203\" y=\"-547\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">x6</text>\n",
       "</g>\n",
       "<!-- bodypose_model/outputs/284&#45;&gt;10019260897339890291 -->\n",
       "<g id=\"edge34\" class=\"edge\">\n",
       "<title>bodypose_model/outputs/284&#45;&gt;10019260897339890291</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M245.4343,-619.9891C234.5695,-610.9151 221.1593,-599.7155 209.0302,-589.5857\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"211.2032,-586.8404 201.2844,-583.1166 206.7161,-592.2131 211.2032,-586.8404\"/>\n",
       "</g>\n",
       "<!-- 14236905943657278176 -->\n",
       "<g id=\"node31\" class=\"node\">\n",
       "<title>14236905943657278176</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"317,-583 235,-583 235,-541 317,-541 317,-583\"/>\n",
       "<text text-anchor=\"start\" x=\"242.9019\" y=\"-567\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv7x7 &gt; Relu</text>\n",
       "<text text-anchor=\"start\" x=\"303\" y=\"-547\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">x6</text>\n",
       "</g>\n",
       "<!-- bodypose_model/outputs/284&#45;&gt;14236905943657278176 -->\n",
       "<g id=\"edge36\" class=\"edge\">\n",
       "<title>bodypose_model/outputs/284&#45;&gt;14236905943657278176</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M269.1329,-619.9891C270.0846,-611.9522 271.2338,-602.2476 272.3176,-593.0959\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"275.799,-593.4588 273.4993,-583.1166 268.8476,-592.6356 275.799,-593.4588\"/>\n",
       "</g>\n",
       "<!-- bodypose_model/Sequential[model4_1]/Conv2d[Mconv7_stage4_L1]/outputs/297 -->\n",
       "<g id=\"node13\" class=\"node\">\n",
       "<title>bodypose_model/Sequential[model4_1]/Conv2d[Mconv7_stage4_L1]/outputs/297</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"206,-504 152,-504 152,-468 206,-468 206,-504\"/>\n",
       "<text text-anchor=\"start\" x=\"160.665\" y=\"-483\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv1x1</text>\n",
       "</g>\n",
       "<!-- bodypose_model/outputs/311 -->\n",
       "<g id=\"node15\" class=\"node\">\n",
       "<title>bodypose_model/outputs/311</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"218,-422 164,-422 164,-386 218,-386 218,-422\"/>\n",
       "<text text-anchor=\"start\" x=\"176.8374\" y=\"-401\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Concat</text>\n",
       "</g>\n",
       "<!-- bodypose_model/Sequential[model4_1]/Conv2d[Mconv7_stage4_L1]/outputs/297&#45;&gt;bodypose_model/outputs/311 -->\n",
       "<g id=\"edge7\" class=\"edge\">\n",
       "<title>bodypose_model/Sequential[model4_1]/Conv2d[Mconv7_stage4_L1]/outputs/297&#45;&gt;bodypose_model/outputs/311</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M178.8378,-467.9921C179.0016,-459.4617 179.5483,-449.1583 181,-440 181.4233,-437.3292 181.974,-434.5736 182.5992,-431.8317\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"185.9914,-432.6936 185.0965,-422.1367 179.2127,-430.9475 185.9914,-432.6936\"/>\n",
       "<text text-anchor=\"middle\" x=\"206\" y=\"-442\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">1x38x46x46</text>\n",
       "</g>\n",
       "<!-- bodypose_model/Sequential[model4_2]/Conv2d[Mconv7_stage4_L2]/outputs/310 -->\n",
       "<g id=\"node14\" class=\"node\">\n",
       "<title>bodypose_model/Sequential[model4_2]/Conv2d[Mconv7_stage4_L2]/outputs/310</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"293,-504 239,-504 239,-468 293,-468 293,-504\"/>\n",
       "<text text-anchor=\"start\" x=\"247.665\" y=\"-483\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv1x1</text>\n",
       "</g>\n",
       "<!-- bodypose_model/Sequential[model4_2]/Conv2d[Mconv7_stage4_L2]/outputs/310&#45;&gt;bodypose_model/outputs/311 -->\n",
       "<g id=\"edge8\" class=\"edge\">\n",
       "<title>bodypose_model/Sequential[model4_2]/Conv2d[Mconv7_stage4_L2]/outputs/310&#45;&gt;bodypose_model/outputs/311</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M253.4459,-467.9039C247.0839,-459.1646 239.0211,-448.7108 231,-440 227.6933,-436.4089 224.0701,-432.7841 220.3973,-429.2889\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"222.5977,-426.5569 212.8744,-422.3488 217.8512,-431.7019 222.5977,-426.5569\"/>\n",
       "<text text-anchor=\"middle\" x=\"265\" y=\"-442\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">1x19x46x46</text>\n",
       "</g>\n",
       "<!-- 6940965854023558923 -->\n",
       "<g id=\"node32\" class=\"node\">\n",
       "<title>6940965854023558923</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"232,-349 150,-349 150,-307 232,-307 232,-349\"/>\n",
       "<text text-anchor=\"start\" x=\"157.9019\" y=\"-333\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv7x7 &gt; Relu</text>\n",
       "<text text-anchor=\"start\" x=\"218\" y=\"-313\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">x6</text>\n",
       "</g>\n",
       "<!-- bodypose_model/outputs/311&#45;&gt;6940965854023558923 -->\n",
       "<g id=\"edge38\" class=\"edge\">\n",
       "<title>bodypose_model/outputs/311&#45;&gt;6940965854023558923</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M191,-385.9891C191,-378.0386 191,-368.4561 191,-359.3913\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"194.5001,-359.1166 191,-349.1166 187.5001,-359.1166 194.5001,-359.1166\"/>\n",
       "</g>\n",
       "<!-- 8536199470902917928 -->\n",
       "<g id=\"node33\" class=\"node\">\n",
       "<title>8536199470902917928</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"132,-349 50,-349 50,-307 132,-307 132,-349\"/>\n",
       "<text text-anchor=\"start\" x=\"57.9019\" y=\"-333\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv7x7 &gt; Relu</text>\n",
       "<text text-anchor=\"start\" x=\"118\" y=\"-313\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">x6</text>\n",
       "</g>\n",
       "<!-- bodypose_model/outputs/311&#45;&gt;8536199470902917928 -->\n",
       "<g id=\"edge40\" class=\"edge\">\n",
       "<title>bodypose_model/outputs/311&#45;&gt;8536199470902917928</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M167.3014,-385.9891C155.2483,-376.8287 140.3447,-365.5019 126.9165,-355.2966\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"128.8645,-352.3809 118.785,-349.1166 124.6288,-357.954 128.8645,-352.3809\"/>\n",
       "</g>\n",
       "<!-- bodypose_model/Sequential[model5_1]/Conv2d[Mconv7_stage5_L1]/outputs/324 -->\n",
       "<g id=\"node16\" class=\"node\">\n",
       "<title>bodypose_model/Sequential[model5_1]/Conv2d[Mconv7_stage5_L1]/outputs/324</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"211,-270 157,-270 157,-234 211,-234 211,-270\"/>\n",
       "<text text-anchor=\"start\" x=\"165.665\" y=\"-249\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv1x1</text>\n",
       "</g>\n",
       "<!-- bodypose_model/outputs/338 -->\n",
       "<g id=\"node18\" class=\"node\">\n",
       "<title>bodypose_model/outputs/338</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"118,-188 64,-188 64,-152 118,-152 118,-188\"/>\n",
       "<text text-anchor=\"start\" x=\"76.8374\" y=\"-167\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Concat</text>\n",
       "</g>\n",
       "<!-- bodypose_model/Sequential[model5_1]/Conv2d[Mconv7_stage5_L1]/outputs/324&#45;&gt;bodypose_model/outputs/338 -->\n",
       "<g id=\"edge9\" class=\"edge\">\n",
       "<title>bodypose_model/Sequential[model5_1]/Conv2d[Mconv7_stage5_L1]/outputs/324&#45;&gt;bodypose_model/outputs/338</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M170.6169,-233.923C163.5366,-224.9876 154.381,-214.3578 145,-206 139.3897,-201.0016 133.038,-196.1644 126.7118,-191.7437\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"128.4235,-188.6768 118.173,-185.9974 124.5153,-194.4843 128.4235,-188.6768\"/>\n",
       "<text text-anchor=\"middle\" x=\"180\" y=\"-208\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">1x38x46x46</text>\n",
       "</g>\n",
       "<!-- bodypose_model/Sequential[model5_2]/Conv2d[Mconv7_stage5_L2]/outputs/337 -->\n",
       "<g id=\"node17\" class=\"node\">\n",
       "<title>bodypose_model/Sequential[model5_2]/Conv2d[Mconv7_stage5_L2]/outputs/337</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"118,-270 64,-270 64,-234 118,-234 118,-270\"/>\n",
       "<text text-anchor=\"start\" x=\"72.665\" y=\"-249\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv1x1</text>\n",
       "</g>\n",
       "<!-- bodypose_model/Sequential[model5_2]/Conv2d[Mconv7_stage5_L2]/outputs/337&#45;&gt;bodypose_model/outputs/338 -->\n",
       "<g id=\"edge10\" class=\"edge\">\n",
       "<title>bodypose_model/Sequential[model5_2]/Conv2d[Mconv7_stage5_L2]/outputs/337&#45;&gt;bodypose_model/outputs/338</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M91,-233.8015C91,-223.3976 91,-210.1215 91,-198.3768\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"94.5001,-198.1476 91,-188.1476 87.5001,-198.1476 94.5001,-198.1476\"/>\n",
       "<text text-anchor=\"middle\" x=\"116\" y=\"-208\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">1x19x46x46</text>\n",
       "</g>\n",
       "<!-- 9469636319838519469 -->\n",
       "<g id=\"node34\" class=\"node\">\n",
       "<title>9469636319838519469</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"82,-115 0,-115 0,-73 82,-73 82,-115\"/>\n",
       "<text text-anchor=\"start\" x=\"7.9019\" y=\"-99\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv7x7 &gt; Relu</text>\n",
       "<text text-anchor=\"start\" x=\"68\" y=\"-79\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">x6</text>\n",
       "</g>\n",
       "<!-- bodypose_model/outputs/338&#45;&gt;9469636319838519469 -->\n",
       "<g id=\"edge42\" class=\"edge\">\n",
       "<title>bodypose_model/outputs/338&#45;&gt;9469636319838519469</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M79.1507,-151.9891C73.579,-143.5201 66.789,-133.1993 60.4901,-123.625\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"63.3127,-121.5471 54.8925,-115.1166 57.4647,-125.3945 63.3127,-121.5471\"/>\n",
       "</g>\n",
       "<!-- 3442820789049449491 -->\n",
       "<g id=\"node35\" class=\"node\">\n",
       "<title>3442820789049449491</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"182,-115 100,-115 100,-73 182,-73 182,-115\"/>\n",
       "<text text-anchor=\"start\" x=\"107.9019\" y=\"-99\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv7x7 &gt; Relu</text>\n",
       "<text text-anchor=\"start\" x=\"168\" y=\"-79\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">x7</text>\n",
       "</g>\n",
       "<!-- bodypose_model/outputs/338&#45;&gt;3442820789049449491 -->\n",
       "<g id=\"edge44\" class=\"edge\">\n",
       "<title>bodypose_model/outputs/338&#45;&gt;3442820789049449491</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M102.8493,-151.9891C108.421,-143.5201 115.211,-133.1993 121.5099,-123.625\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"124.5353,-125.3945 127.1075,-115.1166 118.6873,-121.5471 124.5353,-125.3945\"/>\n",
       "</g>\n",
       "<!-- bodypose_model/Sequential[model6_1]/Conv2d[Mconv7_stage6_L1]/outputs/351 -->\n",
       "<g id=\"node19\" class=\"node\">\n",
       "<title>bodypose_model/Sequential[model6_1]/Conv2d[Mconv7_stage6_L1]/outputs/351</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"68,-36 14,-36 14,0 68,0 68,-36\"/>\n",
       "<text text-anchor=\"start\" x=\"22.665\" y=\"-15\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv1x1</text>\n",
       "</g>\n",
       "<!-- 1274573194035219541 -->\n",
       "<g id=\"node20\" class=\"node\">\n",
       "<title>1274573194035219541</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"301,-1820 219,-1820 219,-1778 301,-1778 301,-1820\"/>\n",
       "<text text-anchor=\"start\" x=\"226.9019\" y=\"-1804\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv3x3 &gt; Relu</text>\n",
       "<text text-anchor=\"start\" x=\"287\" y=\"-1784\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">x2</text>\n",
       "</g>\n",
       "<!-- 1274573194035219541&#45;&gt;bodypose_model/Sequential[model0]/MaxPool2d[pool1_stage1]/outputs/189 -->\n",
       "<g id=\"edge11\" class=\"edge\">\n",
       "<title>1274573194035219541&#45;&gt;bodypose_model/Sequential[model0]/MaxPool2d[pool1_stage1]/outputs/189</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M260,-1777.8298C260,-1769.6487 260,-1760.1634 260,-1751.4057\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"263.5001,-1751.2205 260,-1741.2205 256.5001,-1751.2205 263.5001,-1751.2205\"/>\n",
       "</g>\n",
       "<!-- 13064966811616914696&#45;&gt;bodypose_model/Sequential[model0]/MaxPool2d[pool2_stage1]/outputs/194 -->\n",
       "<g id=\"edge13\" class=\"edge\">\n",
       "<title>13064966811616914696&#45;&gt;bodypose_model/Sequential[model0]/MaxPool2d[pool2_stage1]/outputs/194</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M260,-1625.8298C260,-1617.6487 260,-1608.1634 260,-1599.4057\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"263.5001,-1599.2205 260,-1589.2205 256.5001,-1599.2205 263.5001,-1599.2205\"/>\n",
       "</g>\n",
       "<!-- 15125386261721430011&#45;&gt;bodypose_model/Sequential[model0]/MaxPool2d[pool3_stage1]/outputs/203 -->\n",
       "<g id=\"edge15\" class=\"edge\">\n",
       "<title>15125386261721430011&#45;&gt;bodypose_model/Sequential[model0]/MaxPool2d[pool3_stage1]/outputs/203</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M260,-1473.8298C260,-1465.6487 260,-1456.1634 260,-1447.4057\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"263.5001,-1447.2205 260,-1437.2205 256.5001,-1447.2205 263.5001,-1447.2205\"/>\n",
       "</g>\n",
       "<!-- 3416934003633053932&#45;&gt;bodypose_model/outputs/230 -->\n",
       "<g id=\"edge17\" class=\"edge\">\n",
       "<title>3416934003633053932&#45;&gt;bodypose_model/outputs/230</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M264.1096,-1321.8678C270.468,-1283.1951 278.7096,-1199.7128 245,-1142 240.5887,-1134.4476 233.8877,-1128.1654 226.6911,-1123.0774\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"228.4432,-1120.0442 218.1227,-1117.6486 224.6967,-1125.9572 228.4432,-1120.0442\"/>\n",
       "</g>\n",
       "<!-- 3416934003633053932&#45;&gt;bodypose_model/outputs/257 -->\n",
       "<g id=\"edge18\" class=\"edge\">\n",
       "<title>3416934003633053932&#45;&gt;bodypose_model/outputs/257</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M276.5568,-1321.8357C286.797,-1306.6274 298,-1285.1551 298,-1264 298,-1264 298,-1264 298,-954 298,-932.4961 295.9968,-925.1319 283,-908 278.0203,-901.4359 271.4794,-895.6845 264.6755,-890.817\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"266.2945,-887.693 256.0144,-885.1297 262.4522,-893.5443 266.2945,-887.693\"/>\n",
       "</g>\n",
       "<!-- 3416934003633053932&#45;&gt;bodypose_model/outputs/284 -->\n",
       "<g id=\"edge19\" class=\"edge\">\n",
       "<title>3416934003633053932&#45;&gt;bodypose_model/outputs/284</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M298,-1321.7703C317,-1308.1105 336,-1288.3605 336,-1264 336,-1264 336,-1264 336,-720 336,-698.4961 333.9968,-691.1319 321,-674 316.0203,-667.4359 309.4794,-661.6845 302.6755,-656.817\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"304.2945,-653.693 294.0144,-651.1297 300.4522,-659.5443 304.2945,-653.693\"/>\n",
       "</g>\n",
       "<!-- 3416934003633053932&#45;&gt;bodypose_model/outputs/311 -->\n",
       "<g id=\"edge20\" class=\"edge\">\n",
       "<title>3416934003633053932&#45;&gt;bodypose_model/outputs/311</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M301.1566,-1332.6008C333.8105,-1321.5887 374,-1300.6007 374,-1264 374,-1264 374,-1264 374,-486 374,-454.2746 281.2477,-426.1605 227.8092,-412.5956\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"228.5514,-409.1736 218.0023,-410.157 226.8622,-415.9667 228.5514,-409.1736\"/>\n",
       "</g>\n",
       "<!-- 3416934003633053932&#45;&gt;bodypose_model/outputs/338 -->\n",
       "<g id=\"edge21\" class=\"edge\">\n",
       "<title>3416934003633053932&#45;&gt;bodypose_model/outputs/338</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M218.8153,-1337.9397C150.6966,-1328.4084 22,-1304.9785 22,-1264 22,-1264 22,-1264 22,-252 22,-228.6558 38.5745,-208.497 55.4768,-194.0086\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"58.1362,-196.3607 63.7294,-187.3625 53.7457,-190.9088 58.1362,-196.3607\"/>\n",
       "</g>\n",
       "<!-- 8144613976419209978 -->\n",
       "<g id=\"node24\" class=\"node\">\n",
       "<title>8144613976419209978</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"132,-1285 50,-1285 50,-1243 132,-1243 132,-1285\"/>\n",
       "<text text-anchor=\"start\" x=\"57.9019\" y=\"-1269\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv3x3 &gt; Relu</text>\n",
       "<text text-anchor=\"start\" x=\"118\" y=\"-1249\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">x4</text>\n",
       "</g>\n",
       "<!-- 3416934003633053932&#45;&gt;8144613976419209978 -->\n",
       "<g id=\"edge22\" class=\"edge\">\n",
       "<title>3416934003633053932&#45;&gt;8144613976419209978</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M218.6579,-1323.6744C195.3493,-1312.7786 166.0517,-1299.0833 141.4043,-1287.5618\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"142.7491,-1284.3269 132.2078,-1283.2628 139.7847,-1290.6683 142.7491,-1284.3269\"/>\n",
       "</g>\n",
       "<!-- 14481921719748847651 -->\n",
       "<g id=\"node25\" class=\"node\">\n",
       "<title>14481921719748847651</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"232,-1285 150,-1285 150,-1243 232,-1243 232,-1285\"/>\n",
       "<text text-anchor=\"start\" x=\"157.9019\" y=\"-1269\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv3x3 &gt; Relu</text>\n",
       "<text text-anchor=\"start\" x=\"218\" y=\"-1249\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">x4</text>\n",
       "</g>\n",
       "<!-- 3416934003633053932&#45;&gt;14481921719748847651 -->\n",
       "<g id=\"edge24\" class=\"edge\">\n",
       "<title>3416934003633053932&#45;&gt;14481921719748847651</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M241.5093,-1321.8294C233.7749,-1312.9742 224.6613,-1302.5397 216.3198,-1292.9893\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"218.7562,-1290.4583 209.5418,-1285.229 213.484,-1295.0631 218.7562,-1290.4583\"/>\n",
       "</g>\n",
       "<!-- 8144613976419209978&#45;&gt;bodypose_model/Sequential[model1_1]/Conv2d[conv5_5_CPM_L1]/outputs/220 -->\n",
       "<g id=\"edge23\" class=\"edge\">\n",
       "<title>8144613976419209978&#45;&gt;bodypose_model/Sequential[model1_1]/Conv2d[conv5_5_CPM_L1]/outputs/220</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M92.9499,-1242.8298C93.7034,-1234.6487 94.5771,-1225.1634 95.3837,-1216.4057\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"98.8898,-1216.4994 96.3218,-1206.2205 91.9193,-1215.8573 98.8898,-1216.4994\"/>\n",
       "</g>\n",
       "<!-- 14481921719748847651&#45;&gt;bodypose_model/Sequential[model1_2]/Conv2d[conv5_5_CPM_L2]/outputs/229 -->\n",
       "<g id=\"edge25\" class=\"edge\">\n",
       "<title>14481921719748847651&#45;&gt;bodypose_model/Sequential[model1_2]/Conv2d[conv5_5_CPM_L2]/outputs/229</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M191,-1242.8298C191,-1234.6487 191,-1225.1634 191,-1216.4057\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"194.5001,-1216.2205 191,-1206.2205 187.5001,-1216.2205 194.5001,-1216.2205\"/>\n",
       "</g>\n",
       "<!-- 14230139936353591237&#45;&gt;bodypose_model/Sequential[model2_1]/Conv2d[Mconv7_stage2_L1]/outputs/243 -->\n",
       "<g id=\"edge27\" class=\"edge\">\n",
       "<title>14230139936353591237&#45;&gt;bodypose_model/Sequential[model2_1]/Conv2d[Mconv7_stage2_L1]/outputs/243</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M133.4569,-1008.8298C135.1981,-1000.5588 137.22,-990.9548 139.0806,-982.1172\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"142.5288,-982.7271 141.1641,-972.2205 135.679,-981.2849 142.5288,-982.7271\"/>\n",
       "</g>\n",
       "<!-- 5665934897048359346&#45;&gt;bodypose_model/Sequential[model2_2]/Conv2d[Mconv7_stage2_L2]/outputs/256 -->\n",
       "<g id=\"edge29\" class=\"edge\">\n",
       "<title>5665934897048359346&#45;&gt;bodypose_model/Sequential[model2_2]/Conv2d[Mconv7_stage2_L2]/outputs/256</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M229,-1008.8298C229,-1000.6487 229,-991.1634 229,-982.4057\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"232.5001,-982.2205 229,-972.2205 225.5001,-982.2205 232.5001,-982.2205\"/>\n",
       "</g>\n",
       "<!-- 4916951163406574479&#45;&gt;bodypose_model/Sequential[model3_1]/Conv2d[Mconv7_stage3_L1]/outputs/270 -->\n",
       "<g id=\"edge31\" class=\"edge\">\n",
       "<title>4916951163406574479&#45;&gt;bodypose_model/Sequential[model3_1]/Conv2d[Mconv7_stage3_L1]/outputs/270</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M267,-774.8298C267,-766.6487 267,-757.1634 267,-748.4057\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"270.5001,-748.2205 267,-738.2205 263.5001,-748.2205 270.5001,-748.2205\"/>\n",
       "</g>\n",
       "<!-- 10021701631470090739&#45;&gt;bodypose_model/Sequential[model3_2]/Conv2d[Mconv7_stage3_L2]/outputs/283 -->\n",
       "<g id=\"edge33\" class=\"edge\">\n",
       "<title>10021701631470090739&#45;&gt;bodypose_model/Sequential[model3_2]/Conv2d[Mconv7_stage3_L2]/outputs/283</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M169.7856,-774.8298C170.862,-766.6487 172.1101,-757.1634 173.2624,-748.4057\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"176.768,-748.5917 174.6026,-738.2205 169.8278,-747.6784 176.768,-748.5917\"/>\n",
       "</g>\n",
       "<!-- 10019260897339890291&#45;&gt;bodypose_model/Sequential[model4_1]/Conv2d[Mconv7_stage4_L1]/outputs/297 -->\n",
       "<g id=\"edge35\" class=\"edge\">\n",
       "<title>10019260897339890291&#45;&gt;bodypose_model/Sequential[model4_1]/Conv2d[Mconv7_stage4_L1]/outputs/297</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M176.8357,-540.8298C177.1586,-532.6487 177.533,-523.1634 177.8787,-514.4057\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"181.3835,-514.3508 178.2808,-504.2205 174.389,-514.0746 181.3835,-514.3508\"/>\n",
       "</g>\n",
       "<!-- 14236905943657278176&#45;&gt;bodypose_model/Sequential[model4_2]/Conv2d[Mconv7_stage4_L2]/outputs/310 -->\n",
       "<g id=\"edge37\" class=\"edge\">\n",
       "<title>14236905943657278176&#45;&gt;bodypose_model/Sequential[model4_2]/Conv2d[Mconv7_stage4_L2]/outputs/310</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M273.2144,-540.8298C272.138,-532.6487 270.8899,-523.1634 269.7376,-514.4057\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"273.1722,-513.6784 268.3974,-504.2205 266.232,-514.5917 273.1722,-513.6784\"/>\n",
       "</g>\n",
       "<!-- 6940965854023558923&#45;&gt;bodypose_model/Sequential[model5_1]/Conv2d[Mconv7_stage5_L1]/outputs/324 -->\n",
       "<g id=\"edge39\" class=\"edge\">\n",
       "<title>6940965854023558923&#45;&gt;bodypose_model/Sequential[model5_1]/Conv2d[Mconv7_stage5_L1]/outputs/324</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M189.0501,-306.8298C188.2966,-298.6487 187.4229,-289.1634 186.6163,-280.4057\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"190.0807,-279.8573 185.6782,-270.2205 183.1102,-280.4994 190.0807,-279.8573\"/>\n",
       "</g>\n",
       "<!-- 8536199470902917928&#45;&gt;bodypose_model/Sequential[model5_2]/Conv2d[Mconv7_stage5_L2]/outputs/337 -->\n",
       "<g id=\"edge41\" class=\"edge\">\n",
       "<title>8536199470902917928&#45;&gt;bodypose_model/Sequential[model5_2]/Conv2d[Mconv7_stage5_L2]/outputs/337</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M91,-306.8298C91,-298.6487 91,-289.1634 91,-280.4057\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"94.5001,-280.2205 91,-270.2205 87.5001,-280.2205 94.5001,-280.2205\"/>\n",
       "</g>\n",
       "<!-- 9469636319838519469&#45;&gt;bodypose_model/Sequential[model6_1]/Conv2d[Mconv7_stage6_L1]/outputs/351 -->\n",
       "<g id=\"edge43\" class=\"edge\">\n",
       "<title>9469636319838519469&#45;&gt;bodypose_model/Sequential[model6_1]/Conv2d[Mconv7_stage6_L1]/outputs/351</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M41,-72.8298C41,-64.6487 41,-55.1634 41,-46.4057\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"44.5001,-46.2205 41,-36.2205 37.5001,-46.2205 44.5001,-46.2205\"/>\n",
       "</g>\n",
       "</g>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<hiddenlayer.graph.Graph at 0x14b16d748>"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bodymodel = bodypose_model()\n",
    "hl.build_graph(bodymodel, torch.zeros([1, 3, 368, 368]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
       " -->\n",
       "<!-- Title: %3 Pages: 1 -->\n",
       "<svg width=\"404pt\" height=\"1886pt\"\n",
       " viewBox=\"0.00 0.00 404.00 1886.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(72 1850)\">\n",
       "<title>%3</title>\n",
       "<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-72,36 -72,-1850 332,-1850 332,36 -72,36\"/>\n",
       "<!-- handpose_model/Sequential[model1_0]/MaxPool2d[pool1_stage1]/outputs/109 -->\n",
       "<g id=\"node1\" class=\"node\">\n",
       "<title>handpose_model/Sequential[model1_0]/MaxPool2d[pool1_stage1]/outputs/109</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"143.5,-1735 76.5,-1735 76.5,-1699 143.5,-1699 143.5,-1735\"/>\n",
       "<text text-anchor=\"start\" x=\"84.665\" y=\"-1714\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">MaxPool2x2</text>\n",
       "</g>\n",
       "<!-- 11513693159356215371 -->\n",
       "<g id=\"node17\" class=\"node\">\n",
       "<title>11513693159356215371</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"151,-1662 69,-1662 69,-1620 151,-1620 151,-1662\"/>\n",
       "<text text-anchor=\"start\" x=\"76.9019\" y=\"-1646\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv3x3 &gt; Relu</text>\n",
       "<text text-anchor=\"start\" x=\"137\" y=\"-1626\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">x2</text>\n",
       "</g>\n",
       "<!-- handpose_model/Sequential[model1_0]/MaxPool2d[pool1_stage1]/outputs/109&#45;&gt;11513693159356215371 -->\n",
       "<g id=\"edge8\" class=\"edge\">\n",
       "<title>handpose_model/Sequential[model1_0]/MaxPool2d[pool1_stage1]/outputs/109&#45;&gt;11513693159356215371</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M110,-1698.9891C110,-1691.0386 110,-1681.4561 110,-1672.3913\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"113.5001,-1672.1166 110,-1662.1166 106.5001,-1672.1166 113.5001,-1672.1166\"/>\n",
       "</g>\n",
       "<!-- handpose_model/Sequential[model1_0]/MaxPool2d[pool2_stage1]/outputs/114 -->\n",
       "<g id=\"node2\" class=\"node\">\n",
       "<title>handpose_model/Sequential[model1_0]/MaxPool2d[pool2_stage1]/outputs/114</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"143.5,-1583 76.5,-1583 76.5,-1547 143.5,-1547 143.5,-1583\"/>\n",
       "<text text-anchor=\"start\" x=\"84.665\" y=\"-1562\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">MaxPool2x2</text>\n",
       "</g>\n",
       "<!-- 7803407982992576603 -->\n",
       "<g id=\"node18\" class=\"node\">\n",
       "<title>7803407982992576603</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"151,-1510 69,-1510 69,-1468 151,-1468 151,-1510\"/>\n",
       "<text text-anchor=\"start\" x=\"76.9019\" y=\"-1494\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv3x3 &gt; Relu</text>\n",
       "<text text-anchor=\"start\" x=\"137\" y=\"-1474\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">x4</text>\n",
       "</g>\n",
       "<!-- handpose_model/Sequential[model1_0]/MaxPool2d[pool2_stage1]/outputs/114&#45;&gt;7803407982992576603 -->\n",
       "<g id=\"edge10\" class=\"edge\">\n",
       "<title>handpose_model/Sequential[model1_0]/MaxPool2d[pool2_stage1]/outputs/114&#45;&gt;7803407982992576603</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M110,-1546.9891C110,-1539.0386 110,-1529.4561 110,-1520.3913\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"113.5001,-1520.1166 110,-1510.1166 106.5001,-1520.1166 113.5001,-1520.1166\"/>\n",
       "</g>\n",
       "<!-- handpose_model/Sequential[model1_0]/MaxPool2d[pool3_stage1]/outputs/123 -->\n",
       "<g id=\"node3\" class=\"node\">\n",
       "<title>handpose_model/Sequential[model1_0]/MaxPool2d[pool3_stage1]/outputs/123</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"143.5,-1431 76.5,-1431 76.5,-1395 143.5,-1395 143.5,-1431\"/>\n",
       "<text text-anchor=\"start\" x=\"84.665\" y=\"-1410\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">MaxPool2x2</text>\n",
       "</g>\n",
       "<!-- 12968857949380585058 -->\n",
       "<g id=\"node19\" class=\"node\">\n",
       "<title>12968857949380585058</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"151,-1358 69,-1358 69,-1316 151,-1316 151,-1358\"/>\n",
       "<text text-anchor=\"start\" x=\"76.9019\" y=\"-1342\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv3x3 &gt; Relu</text>\n",
       "<text text-anchor=\"start\" x=\"137\" y=\"-1322\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">x7</text>\n",
       "</g>\n",
       "<!-- handpose_model/Sequential[model1_0]/MaxPool2d[pool3_stage1]/outputs/123&#45;&gt;12968857949380585058 -->\n",
       "<g id=\"edge12\" class=\"edge\">\n",
       "<title>handpose_model/Sequential[model1_0]/MaxPool2d[pool3_stage1]/outputs/123&#45;&gt;12968857949380585058</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M110,-1394.9891C110,-1387.0386 110,-1377.4561 110,-1368.3913\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"113.5001,-1368.1166 110,-1358.1166 106.5001,-1368.1166 113.5001,-1368.1166\"/>\n",
       "</g>\n",
       "<!-- handpose_model/Sequential[model1_1]/Conv2d[conv6_2_CPM]/outputs/140 -->\n",
       "<g id=\"node4\" class=\"node\">\n",
       "<title>handpose_model/Sequential[model1_1]/Conv2d[conv6_2_CPM]/outputs/140</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"162,-1206 108,-1206 108,-1170 162,-1170 162,-1206\"/>\n",
       "<text text-anchor=\"start\" x=\"116.665\" y=\"-1185\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv1x1</text>\n",
       "</g>\n",
       "<!-- handpose_model/outputs/141 -->\n",
       "<g id=\"node5\" class=\"node\">\n",
       "<title>handpose_model/outputs/141</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"139,-1124 85,-1124 85,-1088 139,-1088 139,-1124\"/>\n",
       "<text text-anchor=\"start\" x=\"97.8374\" y=\"-1103\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Concat</text>\n",
       "</g>\n",
       "<!-- handpose_model/Sequential[model1_1]/Conv2d[conv6_2_CPM]/outputs/140&#45;&gt;handpose_model/outputs/141 -->\n",
       "<g id=\"edge1\" class=\"edge\">\n",
       "<title>handpose_model/Sequential[model1_1]/Conv2d[conv6_2_CPM]/outputs/140&#45;&gt;handpose_model/outputs/141</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M129.8956,-1169.8015C126.9476,-1159.2915 123.1775,-1145.8503 119.8586,-1134.0177\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"123.1609,-1132.8308 117.0902,-1124.1476 116.421,-1134.7213 123.1609,-1132.8308\"/>\n",
       "<text text-anchor=\"middle\" x=\"149\" y=\"-1144\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">1x22x46x46</text>\n",
       "</g>\n",
       "<!-- 1509426316506609987 -->\n",
       "<g id=\"node20\" class=\"node\">\n",
       "<title>1509426316506609987</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"153,-1051 71,-1051 71,-1009 153,-1009 153,-1051\"/>\n",
       "<text text-anchor=\"start\" x=\"78.9019\" y=\"-1035\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv7x7 &gt; Relu</text>\n",
       "<text text-anchor=\"start\" x=\"139\" y=\"-1015\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">x6</text>\n",
       "</g>\n",
       "<!-- handpose_model/outputs/141&#45;&gt;1509426316506609987 -->\n",
       "<g id=\"edge19\" class=\"edge\">\n",
       "<title>handpose_model/outputs/141&#45;&gt;1509426316506609987</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M112,-1087.9891C112,-1080.0386 112,-1070.4561 112,-1061.3913\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"115.5001,-1061.1166 112,-1051.1166 108.5001,-1061.1166 115.5001,-1061.1166\"/>\n",
       "</g>\n",
       "<!-- handpose_model/Sequential[model2]/Conv2d[Mconv7_stage2]/outputs/154 -->\n",
       "<g id=\"node6\" class=\"node\">\n",
       "<title>handpose_model/Sequential[model2]/Conv2d[Mconv7_stage2]/outputs/154</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"139,-972 85,-972 85,-936 139,-936 139,-972\"/>\n",
       "<text text-anchor=\"start\" x=\"93.665\" y=\"-951\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv1x1</text>\n",
       "</g>\n",
       "<!-- handpose_model/outputs/155 -->\n",
       "<g id=\"node7\" class=\"node\">\n",
       "<title>handpose_model/outputs/155</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"139,-890 85,-890 85,-854 139,-854 139,-890\"/>\n",
       "<text text-anchor=\"start\" x=\"97.8374\" y=\"-869\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Concat</text>\n",
       "</g>\n",
       "<!-- handpose_model/Sequential[model2]/Conv2d[Mconv7_stage2]/outputs/154&#45;&gt;handpose_model/outputs/155 -->\n",
       "<g id=\"edge2\" class=\"edge\">\n",
       "<title>handpose_model/Sequential[model2]/Conv2d[Mconv7_stage2]/outputs/154&#45;&gt;handpose_model/outputs/155</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M112,-935.8015C112,-925.3976 112,-912.1215 112,-900.3768\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"115.5001,-900.1476 112,-890.1476 108.5001,-900.1476 115.5001,-900.1476\"/>\n",
       "<text text-anchor=\"middle\" x=\"137\" y=\"-910\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">1x22x46x46</text>\n",
       "</g>\n",
       "<!-- 5669622596333078851 -->\n",
       "<g id=\"node21\" class=\"node\">\n",
       "<title>5669622596333078851</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"153,-817 71,-817 71,-775 153,-775 153,-817\"/>\n",
       "<text text-anchor=\"start\" x=\"78.9019\" y=\"-801\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv7x7 &gt; Relu</text>\n",
       "<text text-anchor=\"start\" x=\"139\" y=\"-781\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">x6</text>\n",
       "</g>\n",
       "<!-- handpose_model/outputs/155&#45;&gt;5669622596333078851 -->\n",
       "<g id=\"edge21\" class=\"edge\">\n",
       "<title>handpose_model/outputs/155&#45;&gt;5669622596333078851</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M112,-853.9891C112,-846.0386 112,-836.4561 112,-827.3913\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"115.5001,-827.1166 112,-817.1166 108.5001,-827.1166 115.5001,-827.1166\"/>\n",
       "</g>\n",
       "<!-- handpose_model/Sequential[model3]/Conv2d[Mconv7_stage3]/outputs/168 -->\n",
       "<g id=\"node8\" class=\"node\">\n",
       "<title>handpose_model/Sequential[model3]/Conv2d[Mconv7_stage3]/outputs/168</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"140,-738 86,-738 86,-702 140,-702 140,-738\"/>\n",
       "<text text-anchor=\"start\" x=\"94.665\" y=\"-717\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv1x1</text>\n",
       "</g>\n",
       "<!-- handpose_model/outputs/169 -->\n",
       "<g id=\"node9\" class=\"node\">\n",
       "<title>handpose_model/outputs/169</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"181,-656 127,-656 127,-620 181,-620 181,-656\"/>\n",
       "<text text-anchor=\"start\" x=\"139.8374\" y=\"-635\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Concat</text>\n",
       "</g>\n",
       "<!-- handpose_model/Sequential[model3]/Conv2d[Mconv7_stage3]/outputs/168&#45;&gt;handpose_model/outputs/169 -->\n",
       "<g id=\"edge3\" class=\"edge\">\n",
       "<title>handpose_model/Sequential[model3]/Conv2d[Mconv7_stage3]/outputs/168&#45;&gt;handpose_model/outputs/169</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M122.0992,-701.8015C127.4604,-691.0791 134.347,-677.306 140.3487,-665.3026\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"143.5845,-666.6571 144.9262,-656.1476 137.3235,-663.5266 143.5845,-666.6571\"/>\n",
       "<text text-anchor=\"middle\" x=\"160\" y=\"-676\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">1x22x46x46</text>\n",
       "</g>\n",
       "<!-- 5355895542688103140 -->\n",
       "<g id=\"node22\" class=\"node\">\n",
       "<title>5355895542688103140</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"195,-583 113,-583 113,-541 195,-541 195,-583\"/>\n",
       "<text text-anchor=\"start\" x=\"120.9019\" y=\"-567\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv7x7 &gt; Relu</text>\n",
       "<text text-anchor=\"start\" x=\"181\" y=\"-547\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">x6</text>\n",
       "</g>\n",
       "<!-- handpose_model/outputs/169&#45;&gt;5355895542688103140 -->\n",
       "<g id=\"edge23\" class=\"edge\">\n",
       "<title>handpose_model/outputs/169&#45;&gt;5355895542688103140</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M154,-619.9891C154,-612.0386 154,-602.4561 154,-593.3913\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"157.5001,-593.1166 154,-583.1166 150.5001,-593.1166 157.5001,-593.1166\"/>\n",
       "</g>\n",
       "<!-- handpose_model/Sequential[model4]/Conv2d[Mconv7_stage4]/outputs/182 -->\n",
       "<g id=\"node10\" class=\"node\">\n",
       "<title>handpose_model/Sequential[model4]/Conv2d[Mconv7_stage4]/outputs/182</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"181,-504 127,-504 127,-468 181,-468 181,-504\"/>\n",
       "<text text-anchor=\"start\" x=\"135.665\" y=\"-483\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv1x1</text>\n",
       "</g>\n",
       "<!-- handpose_model/outputs/183 -->\n",
       "<g id=\"node11\" class=\"node\">\n",
       "<title>handpose_model/outputs/183</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"181,-422 127,-422 127,-386 181,-386 181,-422\"/>\n",
       "<text text-anchor=\"start\" x=\"139.8374\" y=\"-401\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Concat</text>\n",
       "</g>\n",
       "<!-- handpose_model/Sequential[model4]/Conv2d[Mconv7_stage4]/outputs/182&#45;&gt;handpose_model/outputs/183 -->\n",
       "<g id=\"edge4\" class=\"edge\">\n",
       "<title>handpose_model/Sequential[model4]/Conv2d[Mconv7_stage4]/outputs/182&#45;&gt;handpose_model/outputs/183</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M154,-467.8015C154,-457.3976 154,-444.1215 154,-432.3768\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"157.5001,-432.1476 154,-422.1476 150.5001,-432.1476 157.5001,-432.1476\"/>\n",
       "<text text-anchor=\"middle\" x=\"179\" y=\"-442\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">1x22x46x46</text>\n",
       "</g>\n",
       "<!-- 17276234060089573109 -->\n",
       "<g id=\"node23\" class=\"node\">\n",
       "<title>17276234060089573109</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"220,-349 138,-349 138,-307 220,-307 220,-349\"/>\n",
       "<text text-anchor=\"start\" x=\"145.9019\" y=\"-333\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv7x7 &gt; Relu</text>\n",
       "<text text-anchor=\"start\" x=\"206\" y=\"-313\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">x6</text>\n",
       "</g>\n",
       "<!-- handpose_model/outputs/183&#45;&gt;17276234060089573109 -->\n",
       "<g id=\"edge25\" class=\"edge\">\n",
       "<title>handpose_model/outputs/183&#45;&gt;17276234060089573109</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M159.9247,-385.9891C162.5968,-377.8657 165.8294,-368.0387 168.8681,-358.8009\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"172.2537,-359.7096 172.0537,-349.1166 165.6042,-357.5222 172.2537,-359.7096\"/>\n",
       "</g>\n",
       "<!-- handpose_model/Sequential[model5]/Conv2d[Mconv7_stage5]/outputs/196 -->\n",
       "<g id=\"node12\" class=\"node\">\n",
       "<title>handpose_model/Sequential[model5]/Conv2d[Mconv7_stage5]/outputs/196</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"213,-270 159,-270 159,-234 213,-234 213,-270\"/>\n",
       "<text text-anchor=\"start\" x=\"167.665\" y=\"-249\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv1x1</text>\n",
       "</g>\n",
       "<!-- handpose_model/outputs/197 -->\n",
       "<g id=\"node13\" class=\"node\">\n",
       "<title>handpose_model/outputs/197</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"246,-188 192,-188 192,-152 246,-152 246,-188\"/>\n",
       "<text text-anchor=\"start\" x=\"204.8374\" y=\"-167\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Concat</text>\n",
       "</g>\n",
       "<!-- handpose_model/Sequential[model5]/Conv2d[Mconv7_stage5]/outputs/196&#45;&gt;handpose_model/outputs/197 -->\n",
       "<g id=\"edge5\" class=\"edge\">\n",
       "<title>handpose_model/Sequential[model5]/Conv2d[Mconv7_stage5]/outputs/196&#45;&gt;handpose_model/outputs/197</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M184.0884,-233.9551C183.8297,-225.2279 184.526,-214.7695 188,-206 189.3157,-202.6787 191.0736,-199.4508 193.0863,-196.3797\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"196.0376,-198.2798 199.2782,-188.1927 190.4545,-194.0573 196.0376,-198.2798\"/>\n",
       "<text text-anchor=\"middle\" x=\"213\" y=\"-208\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">1x22x46x46</text>\n",
       "</g>\n",
       "<!-- 15790283256455772952 -->\n",
       "<g id=\"node24\" class=\"node\">\n",
       "<title>15790283256455772952</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"260,-115 178,-115 178,-73 260,-73 260,-115\"/>\n",
       "<text text-anchor=\"start\" x=\"185.9019\" y=\"-99\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv7x7 &gt; Relu</text>\n",
       "<text text-anchor=\"start\" x=\"246\" y=\"-79\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">x6</text>\n",
       "</g>\n",
       "<!-- handpose_model/outputs/197&#45;&gt;15790283256455772952 -->\n",
       "<g id=\"edge27\" class=\"edge\">\n",
       "<title>handpose_model/outputs/197&#45;&gt;15790283256455772952</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M219,-151.9891C219,-144.0386 219,-134.4561 219,-125.3913\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"222.5001,-125.1166 219,-115.1166 215.5001,-125.1166 222.5001,-125.1166\"/>\n",
       "</g>\n",
       "<!-- handpose_model/Sequential[model6]/Conv2d[Mconv7_stage6]/outputs/210 -->\n",
       "<g id=\"node14\" class=\"node\">\n",
       "<title>handpose_model/Sequential[model6]/Conv2d[Mconv7_stage6]/outputs/210</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"246,-36 192,-36 192,0 246,0 246,-36\"/>\n",
       "<text text-anchor=\"start\" x=\"200.665\" y=\"-15\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv1x1</text>\n",
       "</g>\n",
       "<!-- 1285738913264440487 -->\n",
       "<g id=\"node15\" class=\"node\">\n",
       "<title>1285738913264440487</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"186,-1279 104,-1279 104,-1243 186,-1243 186,-1279\"/>\n",
       "<text text-anchor=\"start\" x=\"111.9019\" y=\"-1258\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv1x1 &gt; Relu</text>\n",
       "</g>\n",
       "<!-- 1285738913264440487&#45;&gt;handpose_model/Sequential[model1_1]/Conv2d[conv6_2_CPM]/outputs/140 -->\n",
       "<g id=\"edge6\" class=\"edge\">\n",
       "<title>1285738913264440487&#45;&gt;handpose_model/Sequential[model1_1]/Conv2d[conv6_2_CPM]/outputs/140</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M142.5281,-1242.9551C141.4223,-1234.8828 140.0927,-1225.1764 138.8605,-1216.1817\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"142.303,-1215.5228 137.4781,-1206.0904 135.3678,-1216.4729 142.303,-1215.5228\"/>\n",
       "</g>\n",
       "<!-- 6698621066210107444 -->\n",
       "<g id=\"node16\" class=\"node\">\n",
       "<title>6698621066210107444</title>\n",
       "<polygon fill=\"#e8e8e8\" stroke=\"#000000\" points=\"151,-1814 69,-1814 69,-1772 151,-1772 151,-1814\"/>\n",
       "<text text-anchor=\"start\" x=\"76.9019\" y=\"-1798\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">Conv3x3 &gt; Relu</text>\n",
       "<text text-anchor=\"start\" x=\"137\" y=\"-1778\" font-family=\"Times\" font-size=\"10.00\" fill=\"#000000\">x2</text>\n",
       "</g>\n",
       "<!-- 6698621066210107444&#45;&gt;handpose_model/Sequential[model1_0]/MaxPool2d[pool1_stage1]/outputs/109 -->\n",
       "<g id=\"edge7\" class=\"edge\">\n",
       "<title>6698621066210107444&#45;&gt;handpose_model/Sequential[model1_0]/MaxPool2d[pool1_stage1]/outputs/109</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M110,-1771.8298C110,-1763.6487 110,-1754.1634 110,-1745.4057\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"113.5001,-1745.2205 110,-1735.2205 106.5001,-1745.2205 113.5001,-1745.2205\"/>\n",
       "</g>\n",
       "<!-- 11513693159356215371&#45;&gt;handpose_model/Sequential[model1_0]/MaxPool2d[pool2_stage1]/outputs/114 -->\n",
       "<g id=\"edge9\" class=\"edge\">\n",
       "<title>11513693159356215371&#45;&gt;handpose_model/Sequential[model1_0]/MaxPool2d[pool2_stage1]/outputs/114</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M110,-1619.8298C110,-1611.6487 110,-1602.1634 110,-1593.4057\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"113.5001,-1593.2205 110,-1583.2205 106.5001,-1593.2205 113.5001,-1593.2205\"/>\n",
       "</g>\n",
       "<!-- 7803407982992576603&#45;&gt;handpose_model/Sequential[model1_0]/MaxPool2d[pool3_stage1]/outputs/123 -->\n",
       "<g id=\"edge11\" class=\"edge\">\n",
       "<title>7803407982992576603&#45;&gt;handpose_model/Sequential[model1_0]/MaxPool2d[pool3_stage1]/outputs/123</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M110,-1467.8298C110,-1459.6487 110,-1450.1634 110,-1441.4057\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"113.5001,-1441.2205 110,-1431.2205 106.5001,-1441.2205 113.5001,-1441.2205\"/>\n",
       "</g>\n",
       "<!-- 12968857949380585058&#45;&gt;handpose_model/outputs/141 -->\n",
       "<g id=\"edge13\" class=\"edge\">\n",
       "<title>12968857949380585058&#45;&gt;handpose_model/outputs/141</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M103.1314,-1315.7676C99.9694,-1304.8991 96.5751,-1291.3811 95,-1279 88.511,-1227.993 98.189,-1168.2528 105.3889,-1133.9961\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"108.8095,-1134.7372 107.5232,-1124.2208 101.9706,-1133.244 108.8095,-1134.7372\"/>\n",
       "</g>\n",
       "<!-- 12968857949380585058&#45;&gt;handpose_model/outputs/155 -->\n",
       "<g id=\"edge14\" class=\"edge\">\n",
       "<title>12968857949380585058&#45;&gt;handpose_model/outputs/155</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M73.1563,-1315.8261C55.4419,-1302.6697 38,-1283.9009 38,-1261 38,-1261 38,-1261 38,-954 38,-928.7769 57.536,-907.8255 76.5324,-893.415\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"78.768,-896.1192 84.8653,-887.4547 74.6956,-890.4257 78.768,-896.1192\"/>\n",
       "</g>\n",
       "<!-- 12968857949380585058&#45;&gt;handpose_model/outputs/169 -->\n",
       "<g id=\"edge15\" class=\"edge\">\n",
       "<title>12968857949380585058&#45;&gt;handpose_model/outputs/169</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M151.1036,-1325.0473C180.1733,-1313.7779 214,-1293.6497 214,-1261 214,-1261 214,-1261 214,-720 214,-698.0684 199.8483,-678.0985 185.2905,-663.3578\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"187.3693,-660.5043 177.7136,-656.1433 182.5423,-665.5738 187.3693,-660.5043\"/>\n",
       "</g>\n",
       "<!-- 12968857949380585058&#45;&gt;handpose_model/outputs/183 -->\n",
       "<g id=\"edge16\" class=\"edge\">\n",
       "<title>12968857949380585058&#45;&gt;handpose_model/outputs/183</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M68.7271,-1326.5017C37.5142,-1315.792 0,-1295.702 0,-1261 0,-1261 0,-1261 0,-486 0,-433.3104 71.1034,-414.365 116.6818,-407.6332\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"117.3768,-411.0714 126.8224,-406.2722 116.4457,-404.1336 117.3768,-411.0714\"/>\n",
       "</g>\n",
       "<!-- 12968857949380585058&#45;&gt;handpose_model/outputs/197 -->\n",
       "<g id=\"edge17\" class=\"edge\">\n",
       "<title>12968857949380585058&#45;&gt;handpose_model/outputs/197</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M151.0723,-1332.5069C193.0103,-1325.3723 252,-1307.1367 252,-1261 252,-1261 252,-1261 252,-252 252,-232.6836 244.0217,-212.5379 235.9109,-197.0486\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"238.8302,-195.0964 230.9138,-188.0551 232.7113,-198.4963 238.8302,-195.0964\"/>\n",
       "</g>\n",
       "<!-- 12968857949380585058&#45;&gt;1285738913264440487 -->\n",
       "<g id=\"edge18\" class=\"edge\">\n",
       "<title>12968857949380585058&#45;&gt;1285738913264440487</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M119.7495,-1315.8298C123.6412,-1307.379 128.1739,-1297.5366 132.3162,-1288.542\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"135.605,-1289.7677 136.609,-1279.2205 129.2468,-1286.8395 135.605,-1289.7677\"/>\n",
       "</g>\n",
       "<!-- 1509426316506609987&#45;&gt;handpose_model/Sequential[model2]/Conv2d[Mconv7_stage2]/outputs/154 -->\n",
       "<g id=\"edge20\" class=\"edge\">\n",
       "<title>1509426316506609987&#45;&gt;handpose_model/Sequential[model2]/Conv2d[Mconv7_stage2]/outputs/154</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M112,-1008.8298C112,-1000.6487 112,-991.1634 112,-982.4057\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"115.5001,-982.2205 112,-972.2205 108.5001,-982.2205 115.5001,-982.2205\"/>\n",
       "</g>\n",
       "<!-- 5669622596333078851&#45;&gt;handpose_model/Sequential[model3]/Conv2d[Mconv7_stage3]/outputs/168 -->\n",
       "<g id=\"edge22\" class=\"edge\">\n",
       "<title>5669622596333078851&#45;&gt;handpose_model/Sequential[model3]/Conv2d[Mconv7_stage3]/outputs/168</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M112.2786,-774.8298C112.3862,-766.6487 112.511,-757.1634 112.6262,-748.4057\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"116.1283,-748.2657 112.7603,-738.2205 109.1289,-748.1736 116.1283,-748.2657\"/>\n",
       "</g>\n",
       "<!-- 5355895542688103140&#45;&gt;handpose_model/Sequential[model4]/Conv2d[Mconv7_stage4]/outputs/182 -->\n",
       "<g id=\"edge24\" class=\"edge\">\n",
       "<title>5355895542688103140&#45;&gt;handpose_model/Sequential[model4]/Conv2d[Mconv7_stage4]/outputs/182</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M154,-540.8298C154,-532.6487 154,-523.1634 154,-514.4057\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"157.5001,-514.2205 154,-504.2205 150.5001,-514.2205 157.5001,-514.2205\"/>\n",
       "</g>\n",
       "<!-- 17276234060089573109&#45;&gt;handpose_model/Sequential[model5]/Conv2d[Mconv7_stage5]/outputs/196 -->\n",
       "<g id=\"edge26\" class=\"edge\">\n",
       "<title>17276234060089573109&#45;&gt;handpose_model/Sequential[model5]/Conv2d[Mconv7_stage5]/outputs/196</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M180.9499,-306.8298C181.7034,-298.6487 182.5771,-289.1634 183.3837,-280.4057\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"186.8898,-280.4994 184.3218,-270.2205 179.9193,-279.8573 186.8898,-280.4994\"/>\n",
       "</g>\n",
       "<!-- 15790283256455772952&#45;&gt;handpose_model/Sequential[model6]/Conv2d[Mconv7_stage6]/outputs/210 -->\n",
       "<g id=\"edge28\" class=\"edge\">\n",
       "<title>15790283256455772952&#45;&gt;handpose_model/Sequential[model6]/Conv2d[Mconv7_stage6]/outputs/210</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M219,-72.8298C219,-64.6487 219,-55.1634 219,-46.4057\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"222.5001,-46.2205 219,-36.2205 215.5001,-46.2205 222.5001,-46.2205\"/>\n",
       "</g>\n",
       "</g>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<hiddenlayer.graph.Graph at 0x14b19e5c0>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "handmodel = handpose_model()\n",
    "hl.build_graph(handmodel, torch.zeros([1, 3, 368, 368]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
